package br.com.saeng2D.superficie.builder;

import java.awt.event.MouseEvent;

import br.com.saeng2D.objeto.AbstratoObjeto;
import br.com.saeng2D.objeto.linha.Linha;
import br.com.saeng2D.superficie.Superficie;
import br.com.saeng2D.superficie.manipl.AbstratoManipulador;

//Se o click alcançar alguma linha, esta será dividida em sublinhas 
public class LinhaDivisaoBuilder extends AbstratoManipulador {

	//Construtor
	public LinhaDivisaoBuilder(Superficie superficie) {
		super(superficie);
	}

	public void mouseClicked(MouseEvent e) {
		Linha selecionada = null;
		Linha[] subLinhas = null;
		int x = e.getX();
		int y = e.getY();

		for(AbstratoObjeto objeto : superficie.getObjetos()) {
			if(objeto instanceof Linha) {
				Linha linha = (Linha) objeto;
				if(linha.estarSob(x, y)) {
					subLinhas = linha.criarSubLinhas(x, y);
					selecionada = linha;
					break;
				}
			}
		}

		if(subLinhas != null) {
			superficie.excluirObjeto(selecionada);
			for(Linha linha : subLinhas) {
				superficie.adicionarObjeto(linha);
			}
		}
	}

	public void mouseDragged(MouseEvent e) {
		atualizarTitulo(e);
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseMoved(MouseEvent e) {
		atualizarTitulo(e);
	}

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void antesSubstituicao() {
	}

	public void aposSubstituicao() {
	}
}